본문으로 건너뛰기

Q. ES6 함수의 추가 기능을 말하고 각각 내용을 핵심만 설명하세요.

🧑🏻‍💻 Answer.


✅ 함수의 구분

  • ES6 이전의 모든 함수는 호출할 수 있는 객체이면서 동시에 인스턴스를 생성할 수 있는 객체여서 생성자 함수, 일반 함수, 매서드 등 함수간 명확한 구분이 없었습니다.

  • 하지만 ES6 이후에는 프로퍼티를 활용하여 함수간 명확한 차이를 주었습니다.

  • 일반 함수 : arguments, constructor, prototype 사용 O, super 사용 X

  • 축약형 메서드 : arguments, super 사용 O constructor, prototype 사용 X

  • 화살표 함수 : arguments, constructor, prototype, super 모두 사용 X

✅ 메서드 의미 변경

  • 메서드는 객체 내에서 축약 표현으로 정의된 함수만을 의미합니다.

✅ 화살표 함수 추가

  • function 키워드 대신 화살표를 사용해서 기존의 함수 정의 방식보다 간략하게 함수를 정의할 수 있습니다.

✅ Rest parameter 추가

  • Rest parameter는 함수에 전달된 인수의 목록을 배열로 전달받습니다.

      function sum(...theArgs) {
    let total = 0;

    for (const arg of theArgs) {
    total += arg;
    }
    return total;
    }

    console.log(sum(1, 2, 3)); // Expected output: 6
    // 잘못된 사용
    function wrong1(...one, ...wrong) {}
    function wrong2(...wrong, arg2, arg3) {}

    // 옳은 사용
    function correct1(...wrong) {}
    function correct2(one, ...wrong) {}

✅ parameter 기본값 설정

  • 함수를 호출할 때 매개변수의 개수만큼 인수를 전달하지 않으면 해당 매개변수의 값은 undefined이다. 이때 매개변수에 기본값을 할당하여 이를 방지할 수 있다.